<?php

class BoletaPeer extends BaseBoletaPeer {
static public function doSelectBoletasByProveedor($proveedor, $estacion, $numFactura)
    {
        $c= new Criteria();
        $c->add(self::PROVEEDOR,$proveedor);
        $c->add(self::ESTACIONSUM,$estacion);
        $c->addOr(self::FACTURA,null);
        $c->addOr(self::FACTURA,$numFactura);
        $c->addOr(self::FACTURA,'');
        $boletas= self::doSelect($c);
        $result='';
        foreach($boletas as $boleta)
        {
            $result = $result.$boleta->getNumBoleta().','.$boleta->getFecha().','.$boleta->getVuelo().','.AeronavePeer::doSelectBySerial($boleta->getAeronave()).','.EstacionPeer::doSelectByCodigo($boleta->getEstacionSum()).','.$boleta->getTotal().','.$boleta->getFactura().'+';
        }
        return $result;
    }
    static public function doSelectBoletasNEProveedor($proveedor, $desde, $hasta)
    {
        if($desde!=''){
           $aux = explode('-',$desde);
           $desde = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        if($hasta!=''){
           $aux = explode('-',$hasta);
           $hasta = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        $result ='';
        $c = new Criteria();
        $c->addOr(self::FACTURA,null);
        $c->addOr(self::FACTURA,'');
        if($proveedor!='')
        {
            $c->add(self::PROVEEDOR,$proveedor);
        }
        if($desde!='' && $hasta!='')
        {
            $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            $c->addAnd(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
        }
        else
        {
            if($desde!='')
            {
                $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            }
            if($hasta!='')
            {
                $c->add(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
            }
        }
        $vproducts = self::doSelect($c);
        foreach ($vproducts as $vproduct) {
          $result .= '<tr><td style="border: 1px dotted #999;">'.$vproduct->getNumBoleta().'</td><td style="border: 1px dotted #999;">'.$vproduct->getFecha().'</td><td style="border: 1px dotted #999;">'.$vproduct->getProveedor1().'</td><td style="border: 1px dotted #999;">'.$vproduct->getVuelo().'</td><td style="border: 1px dotted #999;">'.$vproduct->getEstacionSum1().'</td><td style="border: 1px dotted #999;">'.$vproduct->getTotal().'</td><td style="border: 1px dotted #999;">'.$vproduct->getUMedida().'</td><td style="border: 1px dotted #999;">'.$vproduct->getTipoComb().'</td></tr>';
        }
        return $result;
    }
    static public function doSelectBoletasFecha($estacion, $desde, $hasta)
    {
        if($desde!=''){
           $aux = explode('-',$desde);
           $desde = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        if($hasta!=''){
           $aux = explode('-',$hasta);
           $hasta = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        $result ='';
        $c = new Criteria();
        $c->addOr(self::FACTURA,null);
        $c->addOr(self::FACTURA,'');
        if($estacion!='')
        {
            $c->add(self::ESTACIONSUM,$estacion);
        }
        if($desde!='' && $hasta!='')
        {
            $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            $c->addAnd(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
        }
        else
        {
            if($desde!='')
            {
                $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            }
            if($hasta!='')
            {
                $c->add(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
            }
        }
        $vproducts = self::doSelect($c);
        foreach ($vproducts as $vproduct) {
          $result .= $vproduct->getFecha().'.';
        }
        return $result;
    }
    static public function doSelectConsumoByFecha($fecha, $estacion)
    {
            $consumo = '0';
            $c= new Criteria();
            $c->addOr(self::FACTURA,null);
            $c->addOr(self::FACTURA,'');
            $c->add(self::FECHA,$fecha);
            $c->add(self::ESTACIONSUM,$estacion);
            $boletas = self::doSelect($c);
            foreach ($boletas as $boleta)
            {
              $consumo = (float)$consumo + (float)$boleta->getTotal();
            }
            return $consumo;
    }
    static public function doSelectBoletasEProveedor($proveedor, $desde, $hasta)
    {
        if($desde!=''){
           $aux = explode('-',$desde);
           $desde = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        if($hasta!=''){
           $aux = explode('-',$hasta);
           $hasta = $aux[2].'-'.$aux[1].'-'.$aux[0]; 
        }
        $result ='';
        $c = new Criteria();
        $crit0 = $c->getNewCriterion(BoletaPeer::FACTURA, '', Criteria::ALT_NOT_EQUAL);
        $c->add($crit0);
        $crit0 = $c->getNewCriterion(BoletaPeer::FACTURA, null, Criteria::ISNOTNULL);
        $c->add($crit0);
        if($proveedor!='')
        {
            $c->add(self::PROVEEDOR,$proveedor);
        }
        if($desde!='' && $hasta!='')
        {
            $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            $c->addAnd(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
        }
        else
        {
            if($desde!='')
            {
                $c->add(self::FECHA,$desde,Criteria::GREATER_EQUAL);
            }
            if($hasta!='')
            {
                $c->add(self::FECHA, $hasta, Criteria::LESS_EQUAL); 
            }
        }
        $vproducts = self::doSelect($c);
        foreach ($vproducts as $vproduct) {
          $result .= '<tr><td style="border: 1px dotted #999;">'.$vproduct->getNumBoleta().'</td><td style="border: 1px dotted #999;">'.$vproduct->getFactura().'</td><td style="border: 1px dotted #999;">'.$vproduct->getFecha().'</td><td style="border: 1px dotted #999;">'.$vproduct->getProveedor1().'</td><td style="border: 1px dotted #999;">'.$vproduct->getVuelo().'</td><td style="border: 1px dotted #999;">'.$vproduct->getEstacionSum1().'</td><td style="border: 1px dotted #999;">'.$vproduct->getTotal().'</td><td style="border: 1px dotted #999;">'.$vproduct->getUMedida().'</td><td style="border: 1px dotted #999;">'.$vproduct->getTipoComb().'</td></tr>';
        }
        return $result;
    }
    static public function doSelectBoletasByNum($proveedor, $estacion, $numFactura)
    {
        $c= new Criteria();
        $c->add(self::PROVEEDOR,$proveedor);
        $c->add(self::ESTACIONSUM,$estacion);
        $c->addOr(self::FACTURA,$numFactura);
        $c->addOr(self::FACTURA,'');
        $boletas= self::doSelect($c);
        $result='';
        foreach($boletas as $boleta)
        {
            $result = $result.$boleta->getNumBoleta().','.$boleta->getFecha().','.$boleta->getVuelo().','.AeronavePeer::doSelectBySerial($boleta->getAeronave()).','.EstacionPeer::doSelectByCodigo($boleta->getEstacionSum()).','.$boleta->getTotal().'+';
        }
        return $result;
    }
    static public function doModifyBoletasByNumero($numboleta, $numeroFactura, $proveedor)
    {
        $retorna='';
        $c= new Criteria();
        $c->add(self::NUMBOLETA,$numboleta);
        $c->add(self::PROVEEDOR,$proveedor);
        $boleta=self::doSelectOne($c);
        $boleta->setFactura($numeroFactura);
        $boleta->save();
        $retorna=$boleta;
        return $retorna;
    }
    static public function doModifyBoletasVaciaByNumero($numboleta, $proveedor)
    {
        $retorna='';
        $c= new Criteria();
        $c->add(self::NUMBOLETA,$numboleta);
        $c->add(self::PROVEEDOR,$proveedor);
        $boleta=self::doSelectOne($c);
        $boleta->setFactura(null);
        $boleta->save();
        $retorna=$boleta;
        return $retorna;
    }
    static public function doSelectProveedores()
    {
        $retorna='';
        $c= new Criteria();
        $c->addGroupByColumn(self::PROVEEDOR);
        $c->setDistinct();
        $boletas=self::doSelect($c);
        foreach ($boletas as $boleta)
        {
          $retorna = $retorna.$boleta->getProveedor().','.ProveedorPeer::doSelectProveedorById($boleta->getProveedor()).'.';
        }
        return $retorna;
    }
    static public function doSelectEstaciones()
    {
        $retorna='';
        $c= new Criteria();
        $c->addGroupByColumn(self::ESTACIONSUM);
        $c->setDistinct();
        $boletas=self::doSelect($c);
        foreach ($boletas as $boleta)
        {
          $retorna = $retorna.$boleta->getEstacionSum().','.EstacionPeer::doSelectByCodigo($boleta->getEstacionSum()).'.';
        }
        return $retorna;
    }
    static public function doSelectAeronaves()
    {
        $retorna='';
        $c= new Criteria();
        $c->addGroupByColumn(self::AERONAVE);
        $c->setDistinct();
        $boletas=self::doSelect($c);
        foreach ($boletas as $boleta)
        {
          $retorna = $retorna.$boleta->getAeronave().','.$boleta->getAeronave1().'.';
        }
        return $retorna;
    }
    static public function doSelectVuelos()
    {
        $retorna='';
        $c= new Criteria();
        $c->addGroupByColumn(self::VUELO);
        $c->setDistinct();
        $boletas=self::doSelect($c);
        foreach ($boletas as $boleta)
        {
          $retorna = $retorna.$boleta->getVuelo().','.$boleta->getVuelo().'.';
        }
        return $retorna;
    }
} // BoletaPeer
